package com.edu.service;

import com.edu.bean.Post;
import com.edu.dao.PostDao;
import com.edu.dao.PostReplyDao;
import java.util.List;
import java.util.Map;

public class UserPostService {
    private PostDao postDao = new PostDao();
    private PostReplyDao postReplyDao = new PostReplyDao();

    /**
     * 分页获取学生帖子列表
     */
    public List<Map<String, Object>> userGetStudentPosts(int page, int pageSize) {
        int start = (page - 1) * pageSize;
        return postDao.findStudentPostsWithUser(start, pageSize);
    }

    /**
     * 获取学生帖子总数
     */
    public int userGetStudentPostsTotalCount() {
        return postDao.findStudentPostsTotalCount();
    }

    /**
     * 获取帖子详情（包含发帖人信息）
     */
    public Map<String, Object> userGetPostDetail(Integer postId) {
        // 增加浏览次数
        postDao.incrementViewCount(postId);
        return postDao.findPostWithUser(postId);
    }

    /**
     * 获取帖子回复列表
     */
    public List<Map<String, Object>> userGetPostReplies(Integer postId) {
        return postReplyDao.findRepliesWithUser(postId);
    }

    /**
     * 发布帖子
     */
    public boolean userAddPost(Post post) {
        return postDao.add(post);
    }

    /**
     * 回复帖子
     */
    public boolean userAddReply(Integer postId, Integer userId, String content) {
        return postReplyDao.addReply(postId, userId, content);
    }

    /**
     * 分页获取用户的心理咨询列表
     */
    public List<Map<String, Object>> userGetConsultPosts(Integer userId, int page, int pageSize) {
        int start = (page - 1) * pageSize;
        return postDao.findConsultPostsByUser(userId, start, pageSize);
    }

    /**
     * 获取用户的心理咨询总数
     */
    public int userGetConsultPostsTotalCount(Integer userId) {
        return postDao.findConsultPostsTotalCount(userId);
    }

    /**
     * 获取用户已回复的心理咨询数量
     */
    public int userGetRepliedConsultCount(Integer userId) {
        return postDao.findRepliedConsultCount(userId);
    }

    /**
     * 获取用户待回复的心理咨询数量
     */
    public int userGetWaitingConsultCount(Integer userId) {
        return postDao.findWaitingConsultCount(userId);
    }

    /**
     * 分页获取用户的就业指导帖子
     */
    public List<Map<String, Object>> userGetCareerPosts(Integer userId, int page, int pageSize) {
        int start = (page - 1) * pageSize;
        return postDao.findCareerPostsByUser(userId, start, pageSize);
    }

    /**
     * 获取用户的就业指导帖子总数
     */
    public int userGetCareerPostsTotalCount(Integer userId) {
        return postDao.findCareerPostsTotalCount(userId);
    }

    /**
     * 获取用户已回复的就业指导帖子数量
     */
    public int userGetRepliedCareerCount(Integer userId) {
        return postDao.findRepliedCareerCount(userId);
    }

    /**
     * 获取用户待回复的就业指导帖子数量
     */
    public int userGetWaitingCareerCount(Integer userId) {
        return postDao.findWaitingCareerCount(userId);
    }
} 